package com.wans.common.constans;

import lombok.Getter;

@Getter
public enum CustomExceptionEnum {

    //  没有登录 - 或者会话已经过期
    USER_NOT_LOGIN(400, "NOT LOGIN", "没有登录"),


    // 序列化错误
    JSON_PROCESS_EX(4040001, "序列化异常", ""),
    // Redis操作异常
    Redis_PROCESS_EX(4040002, "Redis操作异常", ""),
    // 请求头的数据不存在
    GATEWAY_VALID_EX(4040003, "登录异常", "User-Agent"),
    // 其他未知异常
    OTHER_PROCESS_EX(4040004, "其他未知异常", ""),


    // 分页参数异常 - ssq 微服务专区
    SSQ_PAGE_ERROR(4042101, "未接收到任何数据", ""),
    USER_SSQ_DATA_ERROR(4042102, "数据不完整", "用户双色球记录需要的请求信息不完整"),
    USER_SSQ_NON_FULL_ERROR(4042103, "不是完整的一注", "用户双色球记录需要的请求信息不完整"),
    USER_SSQ_BET_DATA_ERROR(4042104, "投注过大", "用户双色球记录需要的请求信息投注过大"),
    USER_SSQ_CODE_ERROR(4042105, "期次不存在", "用户双色球记录期次不存在"),
    USER_SSQ_INSERT_ERROR(4042106, "插入数据失败", "用户双色球记录插入失败"),
    USER_SSQ_DELETE_ERROR(4042107, "删除数据失败", "用户双色球记录删除失败"),
    USER_SSQ_UPDATE_ERROR(4042108, "更新数据失败", "用户双色球记录更新失败"),
    USER_SSQ_SELECT_ERROR(4042109, "查询数据失败", "用户双色球记录查询失败"),

    // 调用外部第三方API时的异常信息
    NULL_POINT_ERROR(500, "空指针异常", "第三方返回的数据格式错误"),
    JACK_JSON_ERROR(500, "Jack无法解析", "第三方返回的数据格式错误"),
    THIRD_DATA_ERROR(500, "第三方数据获取失败", "第三方返回的数据格式错误"),


    // 其他运行时位置异常
    OTHER_RUN_ERROR(500, "不可知", "不可知");


    // 错误代码
    private final Integer errorCode;
    // 错误消息
    private final String errorMessage;
    // 错误信息、文本等
    private final String errorInfo;

    CustomExceptionEnum(Integer errorCode, String errorMessage, String errorInfo) {
        this.errorCode = errorCode;
        this.errorMessage = errorMessage;
        this.errorInfo = errorInfo;

    }
}
